dnd: Add gtk_drag_set_icon_texture()
authorBenjamin Otte <otte@redhat.com>
Sat, 2 Dec 2017 13:28:05 +0000 (14:28 +0100)
committerBenjamin Otte <otte@redhat.com>
Sat, 2 Dec 2017 15:21:58 +0000 (16:21 +0100)
docs/reference/gtk/gtk4-sections.txt
gtk/gtkdnd.c
gtk/gtkdnd.h

index fb524303f05934c0c7a54332a2e98a98aaa6b5de..00eb3e15f15b21196cbe092be29a221d905489e9 100644 (file)
@@ -5317,6 +5317,7 @@ gtk_drag_begin_with_coordinates
 gtk_drag_cancel
 gtk_drag_set_icon_widget
 gtk_drag_set_icon_surface
+gtk_drag_set_icon_texture
 gtk_drag_set_icon_name
 gtk_drag_set_icon_gicon
 gtk_drag_set_icon_default
index c3e65310c68ef3c312833845a143d21aab9e2262..f0364ca72f97d01cd5af32b858eeb0f466142ebf 100644 (file)
@@ -1619,6 +1619,38 @@ gtk_drag_set_icon_surface (GdkDragContext  *context,
   gtk_drag_set_icon_widget_internal (context, widget, (int)hot_x, (int)hot_y, TRUE);
 }
 
+/**
+ * gtk_drag_set_icon_texture: (method)
+ * @context: the context for a drag (This must be called
+ *     with a context for the source side of a drag)
+ * @texture: the #GdkTexture to use as icon
+ * @hot_x: the X offset of the hotspot within the icon
+ * @hot_y: the Y offset of the hotspot within the icon
+ *
+ * Sets @texture as the icon for a given drag. GTK+ retains
+ * references for the arguments, and will release them when
+ * they are no longer needed.
+ *
+ * To position the texture relative to the mouse, its top
+ * left will be positioned @hot_x, @hot_y pixels from the
+ * mouse cursor.
+ */
+void
+gtk_drag_set_icon_texture (GdkDragContext *context,
+                           GdkTexture     *texture,
+                           int             hot_x,
+                           int             hot_y)
+{
+  GtkWidget *widget;
+
+  g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+  g_return_if_fail (GDK_IS_TEXTURE (texture));
+
+  widget = gtk_image_new_from_texture (texture);
+
+  gtk_drag_set_icon_widget_internal (context, widget, hot_x, hot_y, TRUE);
+}
+
 /**
  * gtk_drag_set_icon_name: (method)
  * @context: the context for a drag (This must be called 
index 4038ac3ae9f1b93faf87491478a1c2dfe710640f..7b75165eeacb0db1992408e4d771e4ce39b1b6f5 100644 (file)
@@ -80,6 +80,11 @@ void gtk_drag_set_icon_widget (GdkDragContext *context,
 GDK_AVAILABLE_IN_ALL
 void gtk_drag_set_icon_surface(GdkDragContext *context,
                               cairo_surface_t *surface);
+GDK_AVAILABLE_IN_3_94
+void gtk_drag_set_icon_texture(GdkDragContext *context,
+                              GdkTexture     *texture,
+                               int             hot_x,
+                               int             hot_y);
 GDK_AVAILABLE_IN_ALL
 void gtk_drag_set_icon_name   (GdkDragContext *context,
                               const gchar    *icon_name,